This invention relates generally to a system and method for enhanced rendering of data pages. In a particular implementation, this invention relates to reducing the latency of rendering Web pages.
In a typical exchange over the World-Wide-Web, a user employs a Web browser to send over the Internet a request for a Web page to a content server. The content server processes the request and sends hypertext markup language (HTML) code over the Internet back to the browser. The HTML code often includes one or more image tags, which identify for the browser embedded images that appear in the Web page. If there are embedded images, the browser then sends a request for each of the images in the Web page, and the server responds by sending the images.
Because the browser cannot even request the embedded images until it has already received the HTML code, the individual attempting to view the Web page must wait first for the HTML code of the Web page to load, and then for the images to load. The time that elapses between when the browser requests the Web page and when the browser displays the complete Web page, together with its images, is known as latency.
Several techniques have been employed to reduce the latency of Web pages. In one widely used technique, the browser is provided with a “cache,” a local memory in which resources loaded by the browser are stored, at least temporarily. The use of a cache obviates the need to reload resources that have been recently loaded by the browser when a user repeatedly visits the same Web page, or when the same resources (such as an image file displaying a company logo) are used in different pages of a Web site. When the browser is asked to display data, it looks first in the cache to determine whether that data has already been downloaded. Latency is thus reduced by avoiding duplicative requests to download data already stored by the browser.
In another technique for reducing latency, the browser accesses the Internet through a proxy server. When the browser requests data over the Internet, the proxy server determines whether it (the proxy server) has a copy of the requested data. If so, the proxy server itself sends the data to the browser, thereby avoiding the additional time it may have taken to retrieve the data from the content server.
The use of proxy servers and the local cache can reduce the amount of time between when a browser requests an imbedded image in a Web page and when the browser has finished loading the image. Nevertheless, a more rapid loading time does not eliminate the delay between when the browser requests a Web page and when it learns which embedded images to request in the first place. This delay can be especially significant to users who access the Web over high-latency systems such as wireless networks.